/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package GUI;;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

/**
 *
 * @author caro
 */
public class VentanaReportes extends JDialog implements ActionListener {

    private JLabel lReporteGrafico;
    private JLabel lReporteTexto;
    /*!ArrayList-JRadioButton con los reportes gr&aacute;ficos*/
    private ArrayList<JRadioButton> rbReportesGraficos;
    /*!ArrayList-RadioButton con los reportes de texto*/
    private ArrayList<JRadioButton> rbReportesTexto;
    /*!JComboBox de meses*/
    private JComboBox cb_meses;
    /*!JTextField para colocar el c&oacute;digo de un producto*/
    private JTextField tfIdProducto;
    /*! Button para crear un nuevo (o varios) reporte(s)*/
    private JButton bCrearReportes;

    /*! JPanel de ingreso con imagen de fondo*/
    private JPanelConFondo pGeneral;
    /*! ArrayList de String con datos del administrador*/
    private ArrayList<String> vAdmin;
    private final boolean[] permisos;

    public VentanaReportes(JFrame framePadre, boolean modal, String tipoUser, boolean[] permisos) {
        super(framePadre, modal);
        setTitle("Cajero Cocos - Sucursales - " + tipoUser);
        System.out.println("1 " + permisos[0]);
        //Image icono = Toolkit.getDefaultToolkit().getImage("images/logo25x25.jpg");
        //setIconImage(icono);
        this.permisos = permisos;
        inicializarComponentes();
        organizarComponentes();
        pack();
        setResizable(false);
        setVisible(true);
    }

    private void inicializarComponentes() {
        lReporteGrafico = new JLabel("Reportes Gráficos", new ImageIcon("/GUI/images/shopping-bag-96x96.png"), SwingConstants.LEFT);
        lReporteGrafico.setFont(new Font("Arial", Font.BOLD, 18));
        lReporteGrafico.setForeground(new Color(78, 79, 99, 190));

        rbReportesGraficos = new ArrayList<>();
        rbReportesGraficos.add(new JRadioButton("20 productos más vendidos " + "\n" + " - último mes", false));
        rbReportesGraficos.add(new JRadioButton("20 productos menos vendidos " + "\n" + " - último mes", false));
        rbReportesGraficos.add(new JRadioButton("10 clientes que más compraron " + "\n" + " - último mes", false));
        rbReportesGraficos.add(new JRadioButton("Ventas de un producto\n" + " - últimos 6 meses", false));
        rbReportesGraficos.add(new JRadioButton("Ventas totales por fabricante " + "\n" + " - último meses", false));
        configurarJRadioButton(rbReportesGraficos);

        lReporteTexto = new JLabel("Reportes Texto", new ImageIcon("/GUI/images/shopping-bag-96x96.png"), SwingConstants.LEFT);
        lReporteTexto.setFont(new Font("Arial", Font.BOLD, 18));
        lReporteTexto.setForeground(new Color(78, 79, 99, 190));

        rbReportesTexto = new ArrayList<JRadioButton>();
        rbReportesTexto.add(new JRadioButton("Clientes que cumplen años " + "\n" + " - próximo mes", false));
        rbReportesTexto.add(new JRadioButton("Productos y Recaudo IVA " + "\n" + " - mes elegido", false));
        configurarJRadioButton(rbReportesTexto);

        String[] sMeses = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"};
        cb_meses = new JComboBox(sMeses);

        tfIdProducto = new JTextField();

        bCrearReportes = new JButton("Crear Reportes");
        configurarBoton(bCrearReportes);
    }

    private void configurarJRadioButton(ArrayList<JRadioButton> rb) {
        for (int i = 0; i < rb.size(); i++) {
            rb.get(i).setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
            rb.get(i).setBackground(new Color(0, 0, 0, 0)); // Fondo Transparente
        }
    }

    private void configurarBoton(JButton boton) {
        boton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        boton.setOpaque(false);
        boton.setBorderPainted(true);
        boton.setBackground(new Color(0, 0, 0, 0));
        boton.addActionListener(this);
    }

    private void organizarComponentes() {
        /* ****************** lado izquierdo pantalla */
        JPanel rbRepGraf3 = new JPanel(new GridLayout(2, 1));
        rbRepGraf3.setBackground(new Color(0, 0, 0, 0));
        rbRepGraf3.add(rbReportesGraficos.get(3));
            JPanel parIdProd = new JPanel(new BorderLayout(5, 0));
            parIdProd.setBackground(new Color(0, 0, 0, 0));
            parIdProd.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 80));//n,w,s,e
            parIdProd.add(new JLabel("idProducto:"), BorderLayout.WEST);
            parIdProd.add(tfIdProducto, BorderLayout.CENTER);
        rbRepGraf3.add(parIdProd);

        JPanel pListaIzq = new JPanel(new GridLayout(5, 1));
        pListaIzq.setBackground(new Color(0, 0, 0, 0));
        pListaIzq.add(rbReportesGraficos.get(0));
        pListaIzq.add(rbReportesGraficos.get(1));
        pListaIzq.add(rbReportesGraficos.get(2));
        pListaIzq.add(rbRepGraf3);
        pListaIzq.add(rbReportesGraficos.get(4));

        JPanel pIzq = new JPanel(new BorderLayout());
        pIzq.setBorder(BorderFactory.createEmptyBorder(20, 50, 0, 0));//n,w,s,e
        pIzq.setBackground(new Color(0, 0, 0, 0));
        pIzq.add(lReporteGrafico, BorderLayout.NORTH);
        pIzq.add(pListaIzq, BorderLayout.CENTER);

        /* ****************** lado derecho pantalla */
        JPanel rbRepText1 = new JPanel(new GridLayout(2, 1));
        rbRepText1.setBackground(new Color(0, 0, 0, 0));
        rbRepText1.add(rbReportesTexto.get(1));
            JPanel cbMeses = new JPanel(new BorderLayout());
            cbMeses.setBackground(new Color(0, 0, 0, 0));
            cbMeses.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 80));//n,w,s,e
            cbMeses.add(cb_meses);
        rbRepText1.add(cbMeses);

        JPanel pListaDer = new JPanel(new GridLayout(2, 1));
        pListaDer.setBackground(new Color(0, 0, 0, 0));
        pListaDer.add(rbReportesTexto.get(0));
        pListaDer.add(rbRepText1);

        JPanel pDer = new JPanel(new BorderLayout(0, 2));
        pDer.setBackground(new Color(0, 0, 0, 0));
        pDer.setBorder(BorderFactory.createEmptyBorder(20, 0, 40, 50));//n,w,s,e
        pDer.add(lReporteTexto, BorderLayout.NORTH);
        pDer.add(pListaDer, BorderLayout.CENTER);

        /* ****************** lado sur pantalla */
        JPanel pBoton = new JPanel();
        pBoton.setBorder(BorderFactory.createEmptyBorder(15, 100, 30, 100));//n,w,s,e
        pBoton.setBackground(new Color(0, 0, 0, 0));
        pBoton.add(bCrearReportes);

        /* ****************** general pantalla */
        pGeneral = new JPanelConFondo(new ImageIcon(getClass().getResource("/GUI/images/main-background-422x288.jpg")));
        pGeneral.setLayout(new BorderLayout(5, 0));//ec, ef
        pGeneral.add(pIzq, BorderLayout.WEST);
        pGeneral.add(pDer, BorderLayout.EAST);
        pGeneral.add(pBoton, BorderLayout.SOUTH);
        
	setLayout(new BorderLayout(0,20)); // eC, eF
	this.add(pGeneral, BorderLayout.CENTER);
    }

    @Override
    public void actionPerformed(ActionEvent ae) {
        if(ae.getSource()==bCrearReportes){
            crearReporte();
        }
    }

    private void crearReporte() {
        
    }
}
